package com.hst.capacity.domain.model.response.express.task;

import com.hst.capacity.domain.model.response.driver.DriverInfoVO;
import com.hst.capacity.domain.model.response.express.ExDetailVO;
import lombok.Data;
import org.apache.ibatis.type.Alias;

import java.time.LocalDateTime;
import java.util.List;

@Data
@Alias("exTaskDetailVO")
public class ExTaskDetailVO {

    private DriverInfoVO driver;
    private Task task;
    private List<Order> orderList;

//    @Data
//    public static class Driver {
//        //司机ID
//        private String idDriver;
//        //司机手机号
//        private String driverMobile;
//        //司机姓名
//        private String realName;
//        //车辆ID
//        private String idVehicle;
//        //车牌
//        private String plateNumber;
//        //品牌
//        private String brand;
//        //颜色
//        private String color;
//        //车辆座位数
//        private Integer seats;
//    }

    @Data
    public static class Task {
        //任务ID
        private String idTask;
        private Integer seating;
        //排队号
        private Integer queueNum;
        //订单数
        private int orderCount = 0;
        //订单人数合计
        private Integer passengersNumber;
        //在乘人数合计
        private Integer passengersIncarNumber;
        //已运送乘客人数合计
        private Integer transportedPassengersNumber;
        //服务类型（0:路上拼 1:拼车 2：包车）
        private int serviceType;
        //任务类型（0：实时任务 1：预约任务）
        private int taskType;
        //任务状态（0：下线休息 1：派任务中 2：派任务完成 3：服务中 4：任务结束 5：无效任务 9:拼单中）
        private int status;
        //任务金额
        private Float taskSumMoney;
        //任务额外金额
        private Float taskAdditionalMoney;
        //任务优惠金额
        private Float taskCouponMoney;
    }

    @Data
    public static class Order {
        //订单ID
        private String idOrder;
        //用户ID
        private String idMember;
        //下单人称呼
        private String userName;
        //下单人手机
        private String userMobile;
        //乘客称呼
        private String passengerName;
        //乘客手机
        private String passengerMobile;
        //乘客数量
        private Integer passengerNumber;
        //用车类型（0：实时 1：预约）
        private Integer orderType;
        //用车形式（0：拼车 1：包车）
        private Integer carpoolType;
        //预约时间
        private LocalDateTime appointmentTime;
        //系统派单时间
        private LocalDateTime assignTime;
        //起始地（省市区）
        private String startAddress;
        //起始地经度
        private String startAddressLongitude;
        //起始地纬度
        private String startAddressLatitude;
        //目的地（省市区）
        private String endAddress;
        //目的地经度
        private String endAddressLongitude;
        //目的地纬度
        private String endAddressLatitude;
        //预估行程距离
        private Float referenceDistance;
        //预估时间
        private Integer estimatedTime;
        //预估金额
        private Float estimatedMoney;
        //订单状态
        private int status;
        //接送站（0:接站 1:送站 2:非接送站业务）
        private int inStation;
    }

}
